home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / freeWAIS-sf-1.1 / iubio-wais.readme < prev    next >
Encoding:
Text File  |  1994-08-04  |  4.5 KB  |  92 lines

  1.  
  2. Additions from d.g. gilbert (gilbertd@bio.indiana.edu).  These modifications
  3. can be picked up via ftp or gopher to ftp.bio.indiana.edu.
  4. Look in folder IUBio Software+Data/util/wais  for  iubio-wais-8b5.tar.Z
  5. (full source) or iubio-wais-8b5.patch  for a difference or
  6. patch file. 
  7.  
  8.  
  9. These additions include
  10.   BOOLEANS == boolean 'and' and 'not' operators.  This is at a simple level.
  11.      There are no nesting symbols.  Words are evaluated from left to right in
  12.      the wais query string.  When a 'not' operator is found, the following
  13.      single word is moved into a buffer of not-words.  This not-word buffer
  14.      is evaluated after all the other words are evaluated.  If a document matches
  15.      a not-word, that document is removed from the set of matches (given a
  16.      score of zero).  
  17.      When an 'and' word is found, the word following it is checked for matches
  18.      to documents, and the the set of documents matching this and-word is
  19.      compared to the set of documents matching any words prior to the and-word.
  20.      The intersection of prior and current matching documents is retained, others
  21.      are removed (set to a zero score).  
  22.      Only the waisserver is affected by BOOLEANS
  23.  
  24.  For example, this query
  25.     red and blue or yellow but not green and orange or black but not white
  26.  
  27.   Will be interpreted like this (the parentheses just show the implicit left-to-right
  28.   interpretation):
  29.     (((((red and blue) or yellow) and orange) or black)  not green) not white)
  30.  
  31.   PARTIALWORD == The asterisk symbol '*' is parsed if it immediately follows a word,
  32.     as an key to search for all partial words that match the first part of the
  33.     word.  
  34.      Only the waisserver is affected by PARTIALWORD.
  35.  
  36.   LITERAL == The quote or double-quote symbols are interpreted, if they occur
  37.      in pairs around a string, as requesting a literal match of the enclosed
  38.      string.  Any special symbols, 'and', 'not', and '*' inside a literal string
  39.      are not interpreted.  The first part of a literal string must be a
  40.      word that is indexed for that data, rather than a delimiter symbol, for
  41.      a match to be found.  
  42.      Only the waisserver is affected by LITERAL.
  43.  
  44.   BIO == these are a set of changes that include
  45.      - optional 'stoplist' file of words to ignore,
  46.      - an optional set of symbols that are used as delimiters, with other
  47.      graphic characters being used as valid word symbols, 
  48.      - a selection of biology data document structures
  49.      BIO affects waisindex as well as waisserver.
  50.  
  51.      Internet GOpher users: You will need my patch to the GopherD Waisindex.c
  52.      to use these BIO patches from Internet Gopher.  See ftp.bio.indiana.edu,
  53.      /util/gopher/iubio-gopher-v1.patch for these changes.
  54.  
  55. Some general restructuring of the wais-8-b5 code was done also, to make 
  56. parameter passing easier for user-defined data files.  This should not cause
  57. any functional difference from the 8-b5 code when the Makefile defines are
  58. turned off.
  59.  
  60. I consider the BOOLEANS modification to be the simplest, and smallest change
  61. to the wais code.  The LITERAL and PARTIALWORD are somewhat more complex, but
  62. still fairly restricted in scope, affecting only a few waisserver modules.  The
  63. BIO modifications involve changes in many areas of the wais code.
  64.  
  65. At least a couple of problems remain:
  66.   The wais-8b5 code will not properly index words that occur more
  67.   than 32,000 times.  The Genbank biology databank that I serve
  68.   here has > 80,000 records, and some important index words occur
  69.   more than this limit.  The wais release 8b3 was amenable to
  70.   uping this limit, but not the w8b5.  I'll continue to look
  71.   for this problem.
  72.  
  73.   The partial word matching addition of mine is imperfect -- it
  74.   misses some words that should match.  Anyone who can look into
  75.   this and help out, I'd appreciate it.  I'll also work on this
  76.   as time permits.
  77.  
  78.  
  79. See Makefile to enable/disable these additions.  You should be able to have
  80. functionally equivalent programs to wais-8-b5 by turning off these defines,
  81. or enable them individually as needed.
  82.  
  83. ........
  84. #   dgg additions
  85. # LITERAL == waisserver, search for "literal strings"
  86. # BOOLEANS == waisserver, search with boolean AND, NOT operators
  87. # PARTIALWORD == waisserver, search for partial words, hum* matches human, hummingbird, ...
  88. # BIO == waisindex, waisserver changes including symbol indexing & search & bio data formats
  89. #
  90. #CFLAGS = -g -I$(SUPDIR) -DSECURE_SERVER -DRELEVANCE_FEEDBACK -DUSG
  91. CFLAGS = -g -I$(SUPDIR) -DSECURE_SERVER -DRELEVANCE_FEEDBACK -DUSG -DBIO -DBOOLEANS -DPARTIALWORD -DLITERAL
  92.